package com.mp.controller.rest;

import com.mp.controller.rest.util.MemoryPriceRest;
import com.mp.controller.rest.util.MensagemRetornoRest;
import com.mp.negocio.HistoricoPrecoService;
import com.mp.negocio.ItemService;
import com.mp.negocio.NomeclaturaLocalService;
import com.mp.negocio.TipoItemService;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam; 

@Path("/Consulta")
public class ConsultaRest  extends MemoryPriceRest
{
    
    private HistoricoPrecoService         hs = new HistoricoPrecoService();
    private ItemService                   itemService = new ItemService();
    private TipoItemService               tipoItemService = new TipoItemService();
    private NomeclaturaLocalService       nomeclaturaService = new NomeclaturaLocalService();
    
    
    
    @GET
    @Produces("application/json")
    @Path("/ListarItensPorUsuario")
    public MensagemRetornoRest getListaItensPorUsuario(
            @QueryParam("sessao")String sessao) 
    {
        try
        {
            return this.setRetornoCorreto(itemService.obterListaItemPorTipoItem(Integer.parseInt(sessao)));         
        }
        catch(Exception ex)
        {
            return this.setRetornoComErro(ex);
        }
  
    }
    
    
    @GET
    @Produces("application/json")
    @Path("/ListarTipoUnidadeItem")
    public MensagemRetornoRest getTipoUnidadePorItem(
            @QueryParam("sessao")String sessao,
            @QueryParam("item")String item
            
            ) 
    {
        try
        {
            return this.setRetornoCorreto(itemService.obterTipoUnidade(Integer.parseInt(sessao),Integer.parseInt(item)));         
        }
        catch(Exception ex)
        {
            return this.setRetornoComErro(ex);
        }
  
    }
    
    
    
    @GET
    @Produces("application/json")
    @Path("/ListarLocalPorUsuario")
    public MensagemRetornoRest getListaNomeclaturaPorUsuario(
            @QueryParam("sessao")String sessao) 
    {
        try
        {
            return this.setRetornoCorreto(nomeclaturaService.obterListaNomeclaturaLocalPorUsuario(Integer.parseInt(sessao)));         
        }
        catch(Exception ex)
        {
            return this.setRetornoComErro(ex);
        }
  
    }
    
    
    
    @GET
    @Produces("application/json")
    @Path("/ListarTiposItem")
    public MensagemRetornoRest getListaTipoItem() 
    {
        try
        {
            return this.setRetornoCorreto(tipoItemService.obterTiposItem());         
        }
        catch(Exception ex)
        {
            return this.setRetornoComErro(ex);
        }
  
    }
     
    
    
    @GET
    @Produces("application/json")
    @Path("/VerificarLocal")
    public MensagemRetornoRest getLocalPorSessaoUsuario(
              @QueryParam("idSessao")Integer idSessao )       
    {
        try
        {
            return this.setRetornoCorreto(nomeclaturaService.obterListaNomeclaturaLocalPorUsuario(idSessao));         

        }
        catch(Exception ex)
        {
            return this.setRetornoComErro(ex);
        }
  
    }
    
    
    @GET
    @Produces("application/json")
    @Path("/ConsultarHistoricoPrecoPorLocalItem")
    public MensagemRetornoRest getListaHistoricoPrecoPorNomeclaturaLocalItem(
              @QueryParam("idSessao")Integer idSessao,
              @QueryParam("idNomeclaturaLocal")Integer idNomeclaturaLocal,
              @QueryParam("idItem")Integer idItem) 
    {
        try
        {
            return this.setRetornoCorreto(hs.consultarListaHistoricoPrecoPorNomeclaturaLocalItem(idSessao,idNomeclaturaLocal,idItem));         

        }
        catch(Exception ex)
        {
            return this.setRetornoComErro(ex);
        }
  
    }
    
    @GET
    @Produces("application/json")
    @Path("/ConsultarHistoricoPrecoPorLocal")
    public MensagemRetornoRest getListaHistoricoPrecoPorNomeclaturaLocal(
              @QueryParam("idSessao")Integer idSessao,
              @QueryParam("idNomeclaturaLocal")Integer idNomeclaturaLocal)
    {
        try
        {
            return this.setRetornoCorreto(hs.consultarListaHistoricoPrecoPorNomeclaturaLocal(idSessao,idNomeclaturaLocal));         

        }
        catch(Exception ex)
        {
            return this.setRetornoComErro(ex);
        }
  
    }
      
    @GET
    @Produces("application/json")
    @Path("/ConsultarHistoricoPrecoPorItem")
    public MensagemRetornoRest getListaHistoricoPrecoPorItem(
              @QueryParam("idSessao")Integer idSessao,
              @QueryParam("idItem")Integer idItem) 
    {
        try
        {
            return this.setRetornoCorreto(hs.consultarListaHistoricoPrecoPorItem(idSessao,idItem));         

        }
        catch(Exception ex)
        {
            return this.setRetornoComErro(ex);
        }
  
    }
    
   
    
      
  
    
      
   
    
}
